11154. Покраска забора

 

Несколько сезонов жарких лет и холодных зим изрядно подпортили изгородь Фермера Джона, и он решил перекрасить её с помощью своей любимой коровы Беси. Беси отлично красит, но к несчастью плохо понимает команды ФД.

Если мы рассмотрим изгородь ФД как одномерную числовую прямую, то ФД закрашивает интервал между x = a и x = b. Например, если a = 3 и b = 5, то ФД закрашивает интервал длиной 2. Беси, не понимая команды ФД, закрашивает интервал от x = c до x = d, который может частично или полностью перекрываться с интервалом ФД. Определите общую длину изгороди, которую покрасят ФД и Беси.

 

Вход. Первая строка содержит целые числа a и b (a < b). Вторая строка содержит целые числа c и d (c < d).

Значения a, b, c, d лежат в интервале 0 .. 100 включительно.

 

Выход. Выведите в одной строке общую длину изгороди, покрытой краской.

 

Пример входа

Пример выхода

7 10

4 8

6

 

 

РЕШЕНИЕ

циклы

 

Анализ алгоритма

Значения a, b, c, d лежат в интервале 0 .. 100. Переберем все возможные координаты от 0 до 100 и подсчитаем количество таких, которые лежат внутри интервала [a; b) или [c; d).

 

Пример

Рассмотрим покраску изгороди для приведенного примера.

Краской покрыты 6 единиц изгороди от x = 4 до x = 10.

 

Реализация алгоритма

Читаем входные данные.

 

scanf("%d %d", &a, &b);

scanf("%d %d", &c, &d);

 

Перебираем координаты от 0 до 100. В переменной res подсчитаем количество таких координат i, которые находятся в интервале [a; b) или [c; d).

 

res = 0;

for (i = 0; i <= 100; i++)

  if ((a <= i && i < b) || (c <= i && i < d)) res++;

 

Выводим ответ.

 

printf("%d\n", res);